1. Technical Field
The present invention is directed generally toward an improved data capturing system. More particularly, the present invention relates to a method and apparatus for generating a system specific test by providing a sophisticated programmable triggering mechanism to trigger on a specific system event.
2. Description of the Related Art
The current state of the electronics is one where devices must work reliably for long periods of time, even in adverse environments. In order to ensure such reliability, devices are subject to hours or even days of testing under extremely adverse conditions well beyond that which would be seen in an end user's environment. However, testing may uncover bugs in the system that are difficult to analyze, even with state of the art equipment. In such cases, having an intelligent debugging mechanism is essential to be able to examine system errors.
Triggering mechanisms are used to assist in analyzing network traffic and capturing information to detect a specific problem area. In particular, sophisticated triggering mechanisms are important to have when working with communications or storage integrated circuits (ICs) and host bus adapters (HBAs). System devices may be tested by changing voltages and/or temperatures, injecting errors into the communications media, disconnecting and reconnecting devices, dynamically changing configurations, and multiple other conditions. Components of the system, such as the communications link, embedded processors, and random access memory (RAM), are expected to detect and correct errors without causing system errors under these test conditions. This ‘detect and correct’ testing process may be performed continuously for hours or days.
Present off-the-shelf devices often contain moderately sophisticated trigger mechanisms intended to provide the user with sufficient logic to collect a limited amount of information close to the event in question. Unfortunately, these trigger mechanisms fall short of real-world application requirements in situations where the trigger event occurs significantly after the error event or if an error event matching externally observable trigger mechanisms is unknown or unavailable. As a result, the information gathered may fall short of the amount of information needed to properly analyze the event. For example, when nearing the completion of a particular test cycle, the system under test often does not fail for hours or days after the start of the test, even under extreme test conditions. In fact, the system often may operate well past the point of error, overrunning the buffers of present off-the-shelf devices. In other words, critical data may be lost if the trigger event for the error occurs at a time well after the occurrence of the event.
Furthermore, in a Fibre Channel-based system, a typical Fibre Channel (FC) analyzer may be used as a debug tool by providing multi-level triggering and filtering of FC packets to monitor and record all system activity. The recording may be played back and the activity information analyzed. Because these mechanisms operate in real time with information transferred bi-directionally at hundreds of megabytes per second, they are necessarily precious and expensive to obtain. It is not uncommon to require a test associate to sit by the system, wait until the failure occurs, and then manually stop the analyzer in order to gather critical data. The process could take a day to a week to be successful. Such a process results in countless man-hours being used to obtain a good trace from the analyzer, so that the event in question may be analyzed.
Thus, it would be advantageous to have a method and apparatus for generating a system specific test by providing sophisticated error tracking mechanisms to trigger on a specific event. It would further be advantageous to have a method and apparatus for preserving useful information for debugging purposes by using the intelligent triggering mechanism to terminate the storing of additional system activity information.